#include <stdio.h>
#include <string.h>
#include <unistd.h>
int main()
{
  const char*fwr="hello fwrite\n";//当带'\n'的时候显示器遇到'\n'立即刷新
  const char*wr ="hello write\n";
  
  //以下三个都是写到c提供的缓冲区
  printf("hello printf\n");//往显示器打印
  sleep(2);
  fprintf(stdout,"hello fprintf\n");
  sleep(2);
  fwrite(fwr,strlen(fwr),1,stdout);
  sleep(2);

  //write直接写到内核缓冲区
  write(1,wr,strlen(wr));
  sleep(5);
  //close(1);
  fork();//创建子进程的时候会把父进程的缓冲区也拷贝一份，如果都带有'\n',fork()后拷贝的是空缓冲区（因为内容已被刷新），
         //如果没带有'\n'拷贝的是有内容的缓冲区，当程序结束时父、子进程分别刷新一次，所以一共打印父3+子3+一次write（因为write直接写到内核的缓冲区）=7次！！
  return 0;
}
